草庐IT

文件操作 —— IO

全部标签

ruby-on-rails - 奇怪的 ActiveRecord 问题——比如生成无效的 SQL

最近我们部署了一个新版本的应用程序,从那时起我们就发现ActiveRecord存在一些非常奇怪的问题。例如,这是它每天生成数百次的查询片段,通常是正确的:`entries`.`style`ASt1_r25,`entries`.`pdf_visibility`AS,`entries`.`web_visibility`ASt1_r27这不是打字错误,t1_r26不见了,虽然它应该在的地方有一个空格。但只有那一次。这也不是手写SQL,而是ActiveRecord编写查询并决定所有占位符变量。它同样拙劣地破坏了其他查询,将不应该留空(甚至不应该留空)的东西留空,但只是偶尔留空一次。大多数时候都

ruby-on-rails - Carreirwave - 如何直接从保存的文件名创建版本名称

我正在为已上传到我的应用程序的文件创建缩略图。图像名称中有一个时间戳代码。当我运行recreate_versions时,生成的缩略图也有时间戳,但它使用当前时间戳,这使得缩略图名称与原始文件名不同。所以我认为解决方法是为缩略图自定义文件名。基本上有'thumb_'+'原始文件名'。version:thumbdoprocess:resize_to_limit=>[110,nil]deffull_filename(for_file=model.image_value.file)'thumb_'+File.basename(model.image_value.path).to_sendend

ruby-on-rails - 在 Ruby on Rails 中组合显示和编辑操作?

我只是想知道是否有人在没有任何Show操作的情况下构建过Rails应用程序。在我的应用程序中,如果用户从列表中选择,比如说一个项目,他可能不仅要显示它,还要编辑em>它。那么不执行任何显示操作而是将所有记录链接到编辑表单是否是一种好的做法?我看到的唯一警告是用户可能会不小心编辑项目。但这可以通过使用jQuery在所有表单字段上设置默认属性disabled来避免。这样,用户将必须单击“编辑”按钮才能解锁表单字段以进行编辑。这有意义吗?还是我完全疯了?谁知道呢,也许这会导致与Rails的RESTful架构发生冲突? 最佳答案 第一个想法

ruby - 如何在 Ruby 中创建 IO 的自定义子类?

我如何创建自己的类来代替IO,例如为某些接受类似IO参数的代码重定向/捕获输入/输出?IO本身似乎耦合到OS文件描述符,我所知道的唯一一个模仿它而不对其进行子类化的类是StringIO,它似乎只是重新实现了整个接口(interface)。我认为该语言会提供一种直接的方法来执行此操作,但我找不到有关该主题的任何信息。是否有像Enumerable那样在一些基元之上实现接口(interface)的混合宏? 最佳答案 我怀疑我遗漏了什么,但假设情况并非如此......为什么子类化不是一种选择?你能不能只重写IO中需要表现不同的部分?clas

ruby - 从我的胰岛素泵 Controller 逆向工程统计数据文件

这可能是也可能不是灰色地带主题,尽管我的意图肯定不是,所以我的意图不是激起关于逆向工程主题的道德辩论。我是1型糖尿病患者,目前正在接受泵治疗。我是OmniPod用户,这是一个一次性胶囊,可以粘在我的身上并分配胰岛素3天。它由个人糖尿病管理器[PDM](见下文)控制,该管理器控制进餐期间分配的胰岛素量、血糖读数,并且包含一个用于计算碳水化合物的食物指数。(来源:myomnipod.com)新的PDM有一个用于下载数据的USB端口。该软件对Windows用户免费(名为CoPilot的软件包),但不支持Mac。将PDM插入我的Mac后,它像任何其他USB设备一样安装,并为我提供了一个可读卷,

ruby - 从包含的文件中,如何获取执行包含的文件的文件名?

对于问题标题措辞不佳的道歉-不知道如何把它说得更好!在下面的代码中,当我执行rubybar.rb时,如何让它输出bar.rb,而不是foo.rb?在foo.rb中:moduleFoodeffilename__FILE__endend在bar.rb中:require_relative'foo'includeFooputsfilename#outputs'foo.rb'这是一个库函数,每次执行一些代码时,都会记录该代码的位置(和gitref)。 最佳答案 你的问题促使我打开Ruby解释器源代码,看看__FILE__是如何工作的。答案很有

ruby - 在 gem 中打包预编译的二进制文件

我有一颗rubywebapp使用lilypond根据用户输入生成乐谱。我想将主机移至heroku(我最近在几个项目中使用了heroku,并且非常喜欢它,而且我的流量足够低,可以免费在heroku上托管它,至少有一段时间)。然而,heroku的dyno架构不允许你通过ssh进入并安装你想要的任何包......相反,你给它一个gemslist,它会为你安装gems。因此,如果我要部署到heroku,我将需要将lilypond打包为gem。我已经发布了一些纯ruby​​gem,但没有处理native扩展或预编译二进制文件或类似的东西。是否可以将一些预编译的二进制文件打包到gem中?理想情况下

ruby-on-rails - Ruby on Rails : get route using controller, 操作和参数

我对RoR很陌生,我正在寻找一种方法来为给定的Controller、操作和参数获取路由。类似于url_for()但没有域和协议(protocol)。假设我有:params={"controller"=>"controller","action"=>"edit","project_id"=>"1"}我需要得到:route="/controller/edit/1"如果我不需要手动构建路由并且不需要拆分url_for()的结果,那将是最好的。RoR本身是否支持这样的功能?这可能是一个简单的问题,但我找不到答案。 最佳答案 您应该能够使用以

ruby-on-rails - Raphael 中的 SVG 文件,可以使用吗?

我有一个SVG文件,我想通过Raphael显示(每个svg文件都是我要绘制的树中的一个节点,树的实际连接将由raphael建立)。我试过类似的东西:varvector_image=paper.image("test.svg",50,50,50,50);但没有骰子,似乎只接受像png或jpeg这样的“真实”图像文件?我觉得这很奇怪,因为拉斐尔本身使用可缩放矢量图形。无论如何(除了将SVG文件解析为javascript片段并将它们粘贴到html文档中)使用Raphael(或任何其他基于矢量的javascript图形引擎?)显示现有的SVG文件?如果必须解析它,除了手动抓取文件之外,是否有任

ruby-on-rails - Carrierwave - "uploading"来自字符串的文件

我网站中的用户可以上传自己的模特照片或从图库中选择。当用户从库中选择时,我将文件名作为字符串发送到服务器{file:{url:'url.jpg'}}。我还没有找到carrierwave可以只更新模型文件而不上传它的方法。我可以在我的模型中编写一个条件来检查该参数是否存在,然后是model.file=File.open('str.jpg')。从安全角度来看,这不好吗?我如何才能“上传”文件,或仅更新文件属性,以引用服务器上已有的文件?谢谢! 最佳答案 您使用File.open的解决方案可行,但您应该使用File.basename验证该